package com.example.wxserver;

import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

@RestController    // 控制器类的注解
@CrossOrigin
@RequestMapping("/wechat") // 请求映射的注解
public class WeChatController {

    @PostMapping("/getUserInfo") // post请求的注解
    @ResponseBody
    public com.example.wxserver.Result user_login(@RequestParam("code") String code){

        // 配置请求参数
        Map<String, String> param = new HashMap<>();
        param.put("appid", com.example.wxserver.WeChatConfig.WX_LOGIN_APPID);
        param.put("secret", com.example.wxserver.WeChatConfig.WX_LOGIN_SECRET);
        param.put("js_code", code);
        param.put("grant_type", com.example.wxserver.WeChatConfig.WX_LOGIN_GRANT_TYPE);
        // 发送请求
        String wxResult = com.example.wxserver.HttpClientUtil.doGet(com.example.wxserver.WeChatConfig.WX_LOGIN_URL, param);

        JSONObject json = JSONObject.parseObject(wxResult);
        String open_id = json.get("openid").toString();
        String session_key = json.get("session_key").toString();

        // 根据返回的user实体类，判断用户是否是新用户，不是的话，更新最新登录时间，是的话，将用户信息存到数据库

        // 封装返回小程序
        Map<String, String> result = new HashMap<>();
        result.put("session_key", session_key);
        result.put("open_id", open_id);
        return new com.example.wxserver.Result(1,"ok",result);	// 自己定义的返回类
    }

}
